<?php
/************************************************
***修改符合SAE平台上传文件!
***存储在SAE的Storage里!
***时间:2011年11月14日10:57:50
***作者:cloudcome
************************************************/
/**************************************************
upload (line 244)
将文件上传入存储
注意：文件名左侧所有的'/'都会被过滤掉。
return: 写入成功时返回该文件的下载地址，否则返回false
author: Elmer Zhang
access: public
string upload (string $domain, string $destFileName, string $srcFileName, 
[array $attr = array()], [bool $compress = false])
string $domain: 存储域,在在线管理平台.storage页面可进行管理
string $destFileName: 目标文件名
string $srcFileName: 源文件名
array $attr: 文件属性，可设置的属性请参考 SaeStorage::setFileAttr() 方法
bool $compress: 是否gzip压缩。如果设为true，则文件会经过gzip压缩后再存入Storage，
常与$attr=array('encoding'=>'gzip')联合使用
**************************************************/
$kv=new SaeKVClient();//实例化
$init=$kv->init();//初始化
$test=$_POST['test'];
$ip=$_SERVER['REMOTE_ADDR'];
$ip_val=$kv->get($ip);
$pass=0;	//是否请求通过,0=否,1=是
$interval=10;//最短的时间间隔
if($ip_val!='')
{
	$time1=time();
	$timer=$time1-$ip_val;
	if($timer<$interval)	//限制请求时间
	{
		$pass=0;
		echo '你的请求时间间隔为 '.$timer.'秒,最短请求间隔为'.$interval.'秒呢!';
	}
	else
	{
		$ip_key=$kv->set($ip,$time1);
		$pass=1;
	}
}
else
{
	$time2=time();
	$ip_key=$kv->set($ip,$time2);
	$pass=1;
}
//
if(!empty($_FILES) && $pass==1)
{
	/****************************************************************************
	$_FILES['Filedata']['tmp_name']//文件在服务器的缓存路径+名称
	****************************************************************************/
	//实例化SAE Storage
	$SaeStorage=new SaeStorage();
	//设置domain
	$domain='user';
	//初始文件的类型
	$fileTypes=array('jpg','jpeg','gif','png');
	//设置文件的前缀,表示路径
	$filePrefix=date('Y-m-d');
	//获取文件结尾
	$fileEnd=pathinfo($_FILES['Filedata']['name']);
	//设置文件后缀
	$fileSuffix=$fileEnd['extension'];
	//匹配后缀
	if(in_array($fileSuffix,$fileTypes))//匹配成功!
	{
		//设置文件随机标识,当前时间.随机1-10000之间的整数
		$fileFlag=date('Hms').rand(1,10000).'.';
		//设置文件的目标文件名
		$destFileName='/'.$filePrefix.'/'.$fileFlag.$fileSuffix;
		//设置文件的源地址
		$srcFileName=$_FILES['Filedata']['tmp_name'];
		//其他
		//...
		//上传
		$upFile=$SaeStorage->upload($domain,$destFileName,$srcFileName);
		//返回文件的绝对URL/bool
		//例如:http://cloudcome-test.stor.sinaapp.com/XXXXXXX.png
		if($upFile)
		{
			$targetPath=$upFile;
			//文件名?
			$targetFile=$targetPath;
			//文件副本
			$tempFile=$_FILES['Filedata']['name'];
			echo $targetFile;
		}
		else
		{
			$errno	=$SaeStorage->errno();
			$errmsg	=$SaeStorage->errmsg();
			echo 'SAE错误代码:'.$errno.',错误消息:'.$errmsg;
		}
	}
	else
	{
		echo '上传文件格式不正确!';
	}
}
